#ifndef __MARS_GRAPHICS_POINTLIGHT_H__
#define __MARS_GRAPHICS_POINTLIGHT_H__

#include "MarsLight.h"

namespace Graphics
{

class PointLight : public Light
{
public:
									PointLight( const XMFLOAT3& position = XMFLOAT3( 0.0f, 0.0f, 0.0f ),
												float fRange = 0.0f,
												const XMFLOAT4& ambient = XMFLOAT4( 1.0f, 1.0f, 1.0f, 1.0f ), 
												const XMFLOAT4& diffuse = XMFLOAT4( 1.0f, 1.0f, 1.0f, 1.0f ), 
												const XMFLOAT4& specular = XMFLOAT4( 1.0f, 1.0f, 1.0f, 1.0f ) );
	virtual							~PointLight();

	void							SetRange( float fRange );

	float							GetRange() const;

private:
	float							m_fRange;
};

inline PointLight::PointLight( const XMFLOAT3& position,
							   float fRange,
							   const XMFLOAT4& ambient, 
							   const XMFLOAT4& diffuse, 
							   const XMFLOAT4& specular )
	: Light( Light::LT_PointLight, ambient, diffuse, specular, position )
	, m_fRange( fRange )
{

}

inline void PointLight::SetRange( float fRange )
{
	m_fRange = fRange;
}

inline float PointLight::GetRange() const
{
	return m_fRange;
}

} // end of namespace Graphics

#endif // end of #ifndef __MARS_GRAPHICS_POINTLIGHT_H__